perm filename AEROM.FAI[CMS,LCS] blob
sn#192523 filedate 1975-12-17 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00006 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 .INSERT ASMBL.FAI
C00004 00003 ROM RESET
C00006 00004 GVAL: STX ADRL SETUP ADR 3
C00008 00005 GET NUM
C00010 00006 LED OUT
C00021 ENDMK
C⊗;
.INSERT ASMBL.FAI
; ODT RAM & INTERUPT VECTORS
LOC 1000
SVPCH: 377 ;0
SVPCL: 377 ;1
SVPS: 377 ;2
SVSP: 377 ;3
SVA: 176 ;4
SVX: 176 ;5
SVY: 377 ;6
SVPRA: 377 ;7
SVCRA: 377 ;10
SVPRB: 377 ;11
SVCRB: 377 ;12
DADRL: 377 ;13
DADRH: 377 ;14
VAL: 377 ;15
NFLG: 377 ;16
DOIT: 0 ;17
ADRL: 377 ;20
ADRH: 377 ;21
RTRN: 0 ;22
SVNMI: 377 ;1021
IRQA: REPEAT 3,{111↔} ;1022 - 1024
NMIA: REPEAT 3,{333↔} ;1025 - 1027
377 ; ← FF MARK
; CK EXUTIV AND OTHER PROM (BRK)?
; ROM RESET
; OCT DDT CK FOR BBIT?
; SETUP IRQV WITH ? OR BRK FOR OTHER ROM
LOC 177300 ;SHOULD BE 177400
SVNUM←17
ODT: STX SVX ;SAVE X REG 3
LDX NMIA ; 3
STX SVNMI ;SAVE NMIA 3
LDXI RTI ; 2
STX NMIA ;FIX IT __3_
; 14
LDXI 2 ; 2
SAVS: PLA ;GET PC AND PS FROM 1
STAX SVPCH ;STACK AND SAVE 3
DEX ; 1
BPL SAVS ;DO MORE 2
TSX ;SAVE SP 1
STX SVSP ; 3
STY SVY ;SAVE Y __3_
; 15
; RESET I/O SAVE PR ?
CRA←173775 ↔ PRA←173774
CRB←173777 ↔ PRB←173776
LDXI 3 ; 2
SVPIA: LDAX PRA ;SAVE CR THEN DD 3
STAX SVPRA ; 3
LDAI 0 ; 2
STAX PRA ;REPLACE WITH ZEROS 3
DEX ; 1
BPL SVPIA ; 2
STX PRB ;FOR OUTPUT 3
; DPY .LOC
LDAI RTS ; 2
STA RTRN ; 3
LDX SVPCL ;GET PCL 3
LDY SVPCH ;GET PCH __3_
; 25
; ____
; 54
GVAL: STX ADRL ;SETUP ADR 3
STY ADRH ; 3
STX DADRL ;AND DADR 3
STY DADRH ; 3
LDAI 255 ;LDA 2
STA DOIT ; 3
JSR DOIT ; 3
STA VAL ; 3
LDXI 0 ; 2
STX NFLG ;RESET NUM FLAG __2_
; 16
; KB SCAN
KSCAN: JSR LDPY ;DPY DADR AND VAL 3
JSR IKBW ;GET KBCHR 3
ANDI 17 ;GET RID OF JUNK 2
CMPI 10 ; 2
BEQ DOT ;EXAM 2
LDX NFLG ; 3
BCC GNUM ;BRANCH ON NUM 2
BEQ XNXT ;IF NO DEP THEN EX NXT__2_
; 18
; DEP
LDAI 215 ;STA 3
STA DOIT ; 3
LDA DADRL ; 3
JSR DOIT ; 3
; EXAM NEXT
XNXT: LDX ADRL ; 3
LDY ADRH ; 3
INX ;ADR ← ADR+1 1
BNE GVAL ; 2
INY ; 1
JMP GVAL ; __3_
; 17
; EXAM
DOT: BIT NFLG ;CK FOR CONTINUE 3
BEQ CONT ; 2
LDX DADRL ;GET DADR FOR ADR 3
LDY DADRH ; 3
JMP GVAL ; __3_
; 14
; ____
; 62
; GET NUM
GNUM: BNE NOZRO ;IF FIRST NUM 2
STX DADRL ;THEN ZERO ADR DPY 3
STX DADRH ; 3
NOZRO: LDXI 3 ; 2
STX NFLG ;SET NUM FLG 3
DIG: ASL DADRL ;SHIFT ADDRESS LEFT 3
ROL DADRH ; 3
DEX ; 1
BNE DIG ;SHIFT MORE 2
ORA DADRL ;AND ADD KBCHR 3
STA DADRL ; 3
JMP KSCAN ; __3_
; 24
; CONTINUE
CONT: LDXI 3 ; 2
GETR: LDAX SVPRA ;RESTORE CR AND PR 3
STAX PRA ; 3
DEX ; FIX THIS 1
BPL GETR ; __2_
; 11
LDX SVSP ;GET SP 3
TXS ; 1
LDY SVY ;GET Y 3
LDXI -3 ; 2
GETS: LDAX SVPCH+3 ;RESTORE PC AND PS 3
PHA ;TO STACK 1
INX ; 1
BMI GETS ; __2_
; 15
LDA SVA ;GET A 3
LDX SVNMI ; 3
STX NMIA ;RESTORE NMIV 3
LDX SVX ;GET X 3
RTI ; __1_
; 23
; ____
; 70
; LED OUT
LDPY: LDAI 54 ;SET DDBIT 2
STA CRB ;AND PULSE IN CRB 3
LDXI 5 ; 2
LDYI 5 ; 2
ROT: ROL VAL ;ROTATE VAL AND 3
ROL DADRL ;DADR LEFT 4 3
ROL DADRH ;BITS AT A TIME 3
DEY ; 1
BNE ROT ; _2_
; 8
LDA VAL ; 3
ANDI 17 ; 2
ORAX DTBL ; 3
STA PRB ;DPY IT 3
LDYI 4 ; 2
DEX ; 1
BPL ROT ;DO REST 2
RTS ; __1_
; 16
DTBL: 0 ; 1
20 ; 1
40 ; 1
60 ; 1
100 ; 1
120 ; __1_
; 6
; INKBW
IKBW: LDAI 6 ;SET DDBIT 2
STA CRA ;AND ↑BIT IN CRA 3
CKMOR: BIT CRA ;TEST CRA FOR INPUT 3
BPL CKMOR ;TRY AGAIN 2
LDA PRA ;GET CHR 3
RTS ;RETURN __1_
; 14
; ROM INTER VECTS
LOC 177772
NMIV: ABSO NMIA ; 2
RSTV: ABSO ODT ; 2
IRQV: ABSO IRQA ; _2_
; 6
; ____
; 61
; 69
; 62
; 70
; __51_
END ; 252